#ifndef JUMPPATHS_HPP
#define JUMPPATHS_HPP
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/vector.hpp>
#include <cmath>
#include "transition_map.hpp"

using namespace boost::numeric::ublas;

class jumppaths{
private:
  vector<std::complex<double> > Psi;
  std::vector<matrix<int> > Ops;
  transition_map* tmap;
  bool is_orthogonal(vector<std::complex<double> > vec1,vector<std::complex<double> > vec2);
  bool is_zero_vector(vector<std::complex<double> > vec);
  
public:
  jumppaths();
  jumppaths(const std::vector<matrix<int> > &ops, const vector<std::complex<double> > &psi);
  ~jumppaths();
  void calculate_transition_map();
};



#endif
